//
//  MLThemeManager.h
//  MSHandbook
//
//  Created by molon on 14/11/22.
//  Copyright (c) 2014年 molon. All rights reserved.
//
/**
 *  此类必须继承才可使用
 */

#import <Foundation/Foundation.h>

#define TC(o) ([[MLThemeManager manager]colorForKey:@#o])

@protocol MLThemeManagerDelegate <NSObject>

//一般用这个
@optional
- (void)applyTheme;

@optional
- (void)applyThemeExtra;

@end


@interface MLThemeManager : NSObject

/**
 *  可通过设置此值改变皮肤
 */
@property (nonatomic, copy) NSString *themeName;

+ (instancetype)manager;

/**
 *  在app开始时候调用激活
 */
- (void)appLauched;

/**
 *  获取color
 */
- (UIColor*)colorForKey:(NSString*)key;

/**
 *  注册和解除注册代理，因为此单例支持多代理，所以搞方法，参考头部的两个类目，在vc和view里已经自动注册和解绑了
 */
- (void)registerDelegate:(id<MLThemeManagerDelegate>)delegate;
- (void)unregisterDelegate:(id<MLThemeManagerDelegate>)delegate;


//自定义需要继承的
/**
 *  更新一些系统AppearanceStyle
 */
- (void)updateAppearanceStylesWithThemeName:(NSString*)themeName;

/**
 *  这个建议从plist里获取，themeName为nil时候应该使用默认皮肤
 */
- (NSDictionary *)colorStringDictForThemeName:(NSString*)themeName;

@end
